package com.yiyibook.mapper;

import com.yiyibook.entity.Member;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 会员 Mapper
 *
 * @author yi.wu
 * @date 2019-10-14
 */
@Mapper
public interface MemberMapper {

    /**
     * 删除会员
     * @param memberId 会员id
     * @return 删除的记录数
     * @author yi.wu 2019-10-14
     */
    int deleteByPrimaryKey(Integer memberId);

    /**
     * 添加会员
     * @param record 会员对象
     * @return 添加的记录数
     * @author yi.wu 2019-10-14
     */
    int insert(Member record);

    /**
     * 添加会员 (允许有字段为null值)
     * @param record 会员对象
     * @return 添加的记录数
     * @author yi.wu 2019-10-14
     */
    int insertSelective(Member record);

    /**
     * 查询一个会员或多个 （通过会员id 查询一个；传入空值时，查询所有）
     * @param memberId 会员id 或 null
     * @return java.util.List<com.yiyibook.entity.Member> 会员对象集合
     * @author yi.wu 2019-10-14
     */
    List<Member> selectByPrimaryKey(Integer memberId);

    /**
     * 更新会员信息 （允许有字段为null值）
     * @param record 会员对象
     * @return 更新的记录数
     * @author yi.wu 2019-10-14
     */
    int updateByPrimaryKeySelective(Member record);

    /**
     * 更新会员信息
     * @param record 会员对象
     * @return 更新的记录数
     * @author yi.wu 2019-10-14
     */
    int updateByPrimaryKey(Member record);

    /**
     * 查询一个会员 （通过会员账号）
     * @param memberName 会员账号
     * @return com.yiyibook.entity.Member 会员对象
     * @author yi.wu 2019-10-14
     */
    Member selectByMemberName(String memberName);

    /**
     * 查询 会员 （通过 会员对象中不为null的属性 条件查询）
     * @param member 会员信息
     * @return java.util.List<com.yiyibook.entity.Member> 会员对象集合
     * @author yi.wu 2019-10-14
     */
    List<Member> selectByCondition(Member member);

    /**
      * 删除部分会员 根据会员 id 集合
      * @param memberIds 会员 id 集合
      * @return int 被删除的记录数
      * @author taowei.chen@hand-china.com 2019-10-30 16:23:21
      */
    int deleteAnyMemberByIds(@Param("memberIds") List<Integer> memberIds);
}